home *** CD-ROM | disk | FTP | other *** search
/ Morph Movies / Morph Movies.iso / setup.mst < prev    next >
Text File  |  1994-11-11  |  14KB  |  397 lines

  1. '**************************************************************************
  2. '*                  VfW 1.1 Runtime Setup
  3. '**************************************************************************
  4. '$INCLUDE 'setupapi.inc'
  5. '$INCLUDE 'mscpydis.inc'    ''System
  6. '$INCLUDE 'msdetect.inc'    ''Detects Avalilable Disk Space
  7.  
  8. ''Dialog ID's
  9. CONST WELCOME       = 100
  10. CONST ASKQUIT       = 200
  11. CONST DESTPATH      = 300
  12. CONST EXITFAILURE   = 400
  13. CONST EXITQUIT      = 600
  14. CONST EXITSUCCESS   = 700
  15. CONST OPTIONS       = 800
  16. CONST SMALLWIN      = 2200
  17. CONST RESTART       = 2600
  18. CONST RESTARTII     = 2700
  19. CONST BADPATH       = 6400
  20.  
  21. ''Bitmap ID
  22. CONST LOGO = 1
  23.  
  24. GLOBAL SizeReq&  '' Total Disk Size required for installation
  25.  
  26. ''File Types
  27. GLOBAL WinDir$
  28. GLOBAL WinSysDir$
  29. GLOBAL WinSys32Dir$
  30. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  31. GLOBAL CHECKSTATES$
  32. GLOBAL MinorVer%
  33. GLOBAL OnNT$
  34.  
  35. GLOBAL OPTCUR$      ''Option selection from option dialog.
  36. GLOBAL ini$
  37. GLOBAL DEST$        ''Default destination directory.
  38.  
  39. DECLARE SUB Install
  40. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  41. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  42. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  43. DECLARE SUB Reboot LIB "iniupd.dll"
  44. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  45.  
  46. INIT:
  47.   
  48.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  49.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  50.     
  51.     WIN32ENABLED% = 0
  52.     MajorVer% = GetWindowsMajorVersion()
  53.     MinorVer% = GetWindowsMinorVersion()
  54.     Processor% = GetProcessorType()
  55.     WinDir$ = GetWindowsDir()
  56.     WinSysDir$ = GetWindowsSysDir()
  57.     WinSys32Dir$ = WinDir$ + "system32"
  58.  
  59.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  60.     i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  61.     END
  62.     END IF
  63.  
  64.     'Prevents installation on 286
  65.     IF Processor% < 3 THEN
  66.     i% = DoMsgBox("Video for Windows requires a 386 or greater processor or emulator.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  67.     END
  68.     END IF
  69.  
  70.     ' Use Wowexec to determine version of NT.  3.1 did not stamp wowexec and wow returns 3.1 as version
  71.     IF OnWindowsNT() THEN
  72.       OnNT$ = "TRUE"
  73.       WowVersion$ = GetVersionOfFile(WinSys32Dir$ + "\wowexec.exe")
  74.       IF WowVersion$ = "" THEN
  75.          i% = DoMsgBox("Video for Windows does not run on Windows NT 3.1.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  76.          END
  77.       END IF
  78.     END IF
  79.  
  80.     SetBitmap CUIDLL$, LOGO
  81.     SetTitle "Morph Movies"
  82.  
  83.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  84.     IF szInf$ = "" THEN
  85.        szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  86.     END IF
  87.     ReadInfFile szInf$
  88.  
  89.     OPTCUR$ = "1"
  90.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  91.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  92.     DEST$ = WINDRIVE$ + ":\MORPH"
  93.  
  94. WELCOME:
  95.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", 0, "")
  96.     IF sz$ = "CONTINUE" THEN
  97.        UIPop 1
  98.      ELSE
  99.     GOSUB ASKQUIT
  100.     GOTO WELCOME
  101.     END IF
  102.  
  103. '' Select full installation or application only
  104.  
  105. OPTION:
  106.     SetSymbolValue "RadioDefault", OPTCUR$
  107. OPTL1:
  108.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", 0, "")
  109.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  110.  
  111.     IF sz$ = "CONTINUE" THEN
  112.         UIPop(1)
  113.     ELSEIF sz$ = "REACTIVATE" THEN
  114.         GOTO OPTL1
  115.     ELSE
  116.         GOSUB ASKQUIT
  117.         GOTO OPTION
  118.     END IF
  119.  
  120. '' Get the path to install the MORPH application to
  121.  
  122. GETPATH:
  123.     SetSymbolValue "EditTextIn", DEST$
  124.     SetSymbolValue "EditFocus", "END"
  125. GETPATHL1:
  126.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", 0, "")
  127.     DEST$ = GetSymbolValue("EditTextOut")
  128.  
  129.     IF sz$ = "CONTINUE" THEN
  130.         IF IsDirWritable(DEST$) = 0 THEN
  131.             GOSUB BADPATH
  132.             GOTO GETPATHL1
  133.           ELSEIF OPTCUR$ = "1" THEN
  134.             SAMPDIR$ = DEST$ + "\SAMPLES"
  135.         END IF
  136.         UIPop 1
  137.     ELSEIF sz$ = "REACTIVATE" THEN
  138.         GOTO GETPATHL1
  139.     ELSEIF sz$ = "BACK" THEN
  140.         UIPop 1
  141.         GOTO OPTION
  142.     ELSE
  143.         GOSUB ASKQUIT
  144.         GOTO GETPATH
  145.     END IF
  146.  
  147. ''Prepare Copy list and check size
  148.  
  149.     ClearCopyList
  150.     CreateDir DEST$, cmoNone
  151.  
  152. ''  Runtime files (on Windows disk)
  153.  
  154.     IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN            'These files not necessary on Windows NT
  155.     AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$
  156.     AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$
  157.     END IF
  158.     AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$
  159.     AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$
  160.     AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  161.     IF OnNT$ = "TRUE" THEN
  162.     AddSectionFilesToCopyList "NT MSVideo", SrcDir$, WinSys32Dir$
  163.     ENDIF
  164.  
  165. ''  Screen Saver
  166.  
  167.     AddSectionFilesToCopyList "Morph Screen Saver", SrcDir$, WinDir$
  168.  
  169. '' MORPH Application
  170.  
  171.     AddSectionFilesToCopyList "MorphAppFiles", SrcDir$, DEST$
  172.     AddSectionFilesToCopyList "MorphWinFiles", SrcDir$, WinSysDir$
  173.     IF OPTCUR$ = "1" THEN
  174.     AddSectionFilesToCopyList "MorphDoc", SrcDir$, DEST$
  175.     AddSectionFilesToCopyList "MorphSamples", SrcDir$, SAMPDIR$
  176.     ENDIF
  177.  
  178. ''*************************************************************************************************************************
  179. ''*************************************************************************************************************************
  180. ''To add a DCI provider, please un-comment the AddSectionFilesToCopyList,
  181. ''and add a "DCI Provider" section with to the SETUP.INF file.
  182. ''
  183. ''    AddSectionFilesToCopyList "DCI Provider", SrcDir$, WinSysDir$
  184. ''*************************************************************************************************************************
  185. ''*************************************************************************************************************************
  186.  
  187. ''  Check windrive diskspace
  188.  
  189.     SizeReq& = GetCopyListCost ("","", "")
  190.     IF SizeReq& <> 0 THEN
  191.     GOSUB SMALLWIN
  192.     END
  193.     END IF
  194.  
  195. Install
  196.  
  197. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  198. '' else, it gives the user the choice
  199.     RESTRT% = RestartListEmpty ()
  200.     Exe$ = DEST$ + "\_msrstrt.exe"
  201.     Batch$ = DEST$ + "\_mssetup.bat"
  202.     empty$ = ""
  203. RESTART:
  204.     IF RESTRT% = 0 THEN
  205.        sz$ = UIStartDlg(cuidll$, RESTART, "FInfo0DlgProc", 0, "")
  206.        IF sz$ = "REACTIVATE" THEN
  207.       GOTO RESTART
  208.        ENDIF
  209.        I% = ExitExecRestart ()
  210.        RemoveFile Exe$, cmoForce
  211.        RemoveFile Batch$, cmoForce
  212.        END
  213.     ELSE
  214.        sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  215.        IF sz$ = "CONTINUE" THEN
  216.       I% = ExitWindowsExec (Exe$, empty$)
  217.       IF I% = 0 THEN
  218.          GOTO RESTART
  219.       ELSE
  220.          END
  221.      ENDIF
  222.        ELSEIF sz$ = "EXIT" THEN
  223.       UIPopAll
  224.       END
  225.        ELSEIF sz$ = "REACTIVATE" THEN
  226.       GOTO RESTART
  227.        ELSE
  228.       UIPop 1
  229.        END IF
  230.     END IF
  231.  
  232.  
  233. QUIT:
  234.     ON ERROR GOTO ERRQUIT
  235.  
  236.     IF ERR = 0 THEN
  237.     dlg% = EXITSUCCESS
  238.     ELSEIF ERR = STFQUIT THEN
  239.     dlg% = EXITQUIT
  240.     ELSE
  241.     dlg% = EXITFAILURE
  242.     END IF
  243. QUITL1:
  244.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  245.     IF sz$ = "REACTIVATE" THEN
  246.     GOTO QUITL1
  247.     END IF
  248.     UIPop 1
  249.     END
  250.  
  251. ERRQUIT:
  252.     i% = DoMsgBox("An installation problem occured, call Jasmine Multimedia Tech Support!", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  253.     END
  254.  
  255. BADPATH:
  256.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  257.     IF sz$ = "REACTIVATE" THEN
  258.         GOTO BADPATH
  259.     END IF
  260.     UIPop 1
  261.     RETURN
  262.  
  263. ASKQUIT:
  264.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  265.  
  266.     IF sz$ = "EXIT" THEN
  267.     UIPopAll
  268. ''        ERROR STFQUIT
  269.     END
  270.     ELSEIF sz$ = "REACTIVATE" THEN
  271.     GOTO ASKQUIT
  272.     ELSE
  273.     UIPop 1
  274.     END IF
  275.     RETURN
  276.  
  277. SMALLWIN:
  278.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  279.     IF sz$ = "REACTIVATE" THEN
  280.     GOTO SMALLWIN
  281.     END IF
  282.     UIPop 1
  283.     RETURN
  284.  
  285. '**
  286. '** Purpose:
  287. '**     Performs all installation operations.
  288. '** Arguments:
  289. '**     none.
  290. '** Returns:
  291. '**     none.
  292. '*************************************************************************
  293. SUB Install STATIC
  294.  
  295.     SetRestartDir WinDir$
  296.     CopyFilesInCopyList
  297.  
  298. ''Updating WIN.INI and SYSTEM.INI
  299. ''Only update SYSTEM.INI  on NT or next version of Windows for other codecs
  300.  
  301. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  302.     IF VflatdPresent() = 0 THEN
  303.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  304.     END IF
  305. END IF
  306.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  307.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  308.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  309.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "IR32.dll", cmoOverwrite
  310.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  311.     I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21")
  312.     IF I% = 0  THEN
  313.        CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21_r.dll", cmoOverwrite
  314.     END IF
  315.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "ir21_r.dll", cmoOverwrite
  316.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  317.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  318.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  319.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  320.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  321.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  322.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  323.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  324.  
  325. ''*************************************************************************************************************************
  326. ''*************************************************************************************************************************
  327. ''To add a DCI provider, please un-comment the UDH line, and un-comment and replace the    <provider> with your own file name
  328. ''
  329. ''  CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "DCI", "<provider>", cmoOverwrite
  330. ''  CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "vids.draw", "udh.dll", cmoOverwrite
  331. ''*************************************************************************************************************************
  332. ''*************************************************************************************************************************
  333.  
  334. ''Do not register components not installed with Video for Windows on NT or next version of Windows.
  335. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  336.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  337.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  338.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  339.  
  340. '' Mplayer
  341.     CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  342.  
  343. END IF    ''NT and next version of Windows installation stop here.
  344.  
  345. '' Morph application
  346.     CreateProgmanGroup "MORPH", "", cmoNone
  347.     ShowProgmanGroup  "MORPH", 1, cmoNone
  348.     CreateProgmanItem "MORPH", "morph", MakePath(DEST$,"morph.exe"), "", cmoOverwrite
  349.     ini$ = GetSymbolValue("STF_SRCDIR")
  350.     CreateProgmanItem "MORPH", "Morph Special Offer", MakePath(ini$,"gryphofr.avi"), "", cmoOverwrite
  351.     IF OPTCUR$ = "1" THEN
  352.     CreateProgmanItem "MORPH", "Morph Manual", MakePath(DEST$,"morphdoc.wri"), "", cmoOverwrite
  353.     ENDIF
  354.  
  355. '' Morph Movies
  356.     CreateProgmanGroup "Morph Movies", "", cmoOverwrite
  357.     ShowProgmanGroup  "Morph Movies", 1, cmoOverwrite
  358.     ini$ = GetSymbolValue("STF_SRCDIR")
  359.     CreateProgmanItem "Morph Movies", "Morph Movies", MakePath(ini$, "mmovies.exe"), "", cmoOverwrite
  360.     CreateProgmanItem "Morph Movies", "Jasmine Special Offer", MakePath(ini$,"jasofr.exe"), "", cmoOverwrite
  361.  
  362. '' INI entries for morph application
  363.     CreateIniKeyValue WinDir$ + "MMOVIES.INI", "Dir Locations", "MORPH", DEST$, cmoOverwrite
  364.  
  365. '' INI entries for screen saver
  366.     CreateIniKeyValue WinDir$ + "CONTROL.INI", "Screen Saver.MorphMovies", "Sound", "1", cmoOverwrite
  367.     CreateIniKeyValue WinDir$ + "CONTROL.INI", "Screen Saver.MorphMovies", "PlayMode", "1", cmoOverwrite
  368.     CreateIniKeyValue WinDir$ + "CONTROL.INI", "Screen Saver.MorphMovies", "MorphSet", "1", cmoOverwrite
  369.     ini$ = GetSymbolValue("STF_SRCDIR")
  370.     CreateIniKeyValue WinDir$ + "CONTROL.INI", "Screen Saver.MorphMovies", "MorphPath", MakePath(ini$, "video"), cmoOverwrite
  371.  
  372.     Run ("profdisp.exe")   
  373. END SUB
  374.  
  375. '**
  376. '** Purpose:
  377. '**     Appends a file name to the end of a directory path,
  378. '**     inserting a backslash character as needed.
  379. '** Arguments:
  380. '**     szDir$  - full directory path (with optional ending "\")
  381. '**     szFile$ - filename to append to directory
  382. '** Returns:
  383. '**     Resulting fully qualified path name.
  384. '*************************************************************************
  385. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  386.     IF szDir$ = "" THEN
  387.     MakePath = szFile$
  388.     ELSEIF szFile$ = "" THEN
  389.     MakePath = szDir$
  390.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  391.     MakePath = szDir$ + szFile$
  392.     ELSE
  393.     MakePath = szDir$ + "\" + szFile$
  394.     END IF
  395. END FUNCTION
  396.  
  397.